Floris Bruynooghe - Build your Microservices with ZeroMQ [EuroPython 2016] [21 July 2016 / 2016-07-21] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/build-your-microservices-with-zeromq)
While microservices are rather commonly implemented using JSON over HTTP this is merely an implementation choice. This talk will cover the reasons why you might want to choose ZeroMQ as communication transport between your microservices instead. It will show how ZeroMQ is used from within Python and the common patterns which can simplify the overal architecture while at the same time providing reliable and low-latency communications between your services.
Microservices is the popular term for the trend to build backend architectures as a number of smaller independent processes. As an evolution from the Service Oriented Architecture the core aims are to create independent services which are easy to operate and even replace while all of them together compose into providing the business logic required for your application.
While it is rather common for microservices to choose JSON over HTTP to communicate with each other, this is purely an implementation choice. HTTP is a protocol using a strict request-response format, this can become a little burdensome when needing to deal with asynchronous requests and forces some architectural descisions to be not as ideal as they could be. ZeroMQ has more flexible communication patterns allowing for easier mapping of real-life interactions between services. Coupled with an easy to use asynchronous user-level API and very fast underlying communication on persistent TCP connections ZeroMQ is a rather attractive transport to build your microservices based applications in.
This talk will show how to use ZeroMQ within Python to build your microservices. It will show the benefits of ZeroMQ's asynchronous API, common usage patterns and how to handle backpressure. Furthermore different communication patterns will be explored and the impact this has on how to simplify the overall architecture using these patterns.